//先确定区间
//在进行二分

class Solution {
public:
    int search(vector<int>& nums, int target)
    {

        //找左右区间的分界线(取中不适合全部场景)
        int left=0,right=nums.size()-1,middle;
        if(nums[left]>nums[right])
        {
            for(int i =0;i<nums.size();i++)
            {
                if(nums[i]==target)
                {
                    return i;
                }
                else if( nums[i]< nums[i+1])
                {

                }
                else
                {
                    left=i+1;
                    break;
                }
            }
        }

            while(left<=right)
            {
                middle=(left+right)/2;//中间元素

                if(nums[middle]<target)
                {
                    left=middle+1;
                }
                else if(nums[middle]>target)
                {
                    right=middle-1;
                }
                else
                {
                    return middle;
                }
            }
        return -1;
    }
};

